This question already has answers here:
Why can't we use double pointer to represent two dimensional arrays?
(5个答案)
Multi-dimensional array and pointer to pointers
(2个答案)
2年前关闭。
我想初始化一个字符串数组,每个位置都具有相同的值。所以我正在尝试这段代码:
它不起作用,甚至无法复制到第一个位置。 (打印“ rodou 0”然后中断)
geraArquivo()正在工作。
我试图将相同的代码放在main函数下,并且它起作用了,我想我的错误在于“ inicializaVet”参数的类型吗?但是我无法自行解决。
或作为
(5个答案)
Multi-dimensional array and pointer to pointers
(2个答案)
2年前关闭。
我想初始化一个字符串数组,每个位置都具有相同的值。所以我正在尝试这段代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define TAM_VETOR 1009
#define QTD_PLACAS 1000
void inicializaVet(char * v[], int tamVet) {
int i;
for (i = 0; i < tamVet; i++) {
printf("rodou %d\n", i);
strcpy(v[i], "vazio");
}
}
int main(void) {
char vetor[TAM_VETOR][8];
inicializaVet(vetor,TAM_VETOR);
return 0;
}
它不起作用,甚至无法复制到第一个位置。 (打印“ rodou 0”然后中断)
geraArquivo()正在工作。
我试图将相同的代码放在main函数下,并且它起作用了,我想我的错误在于“ inicializaVet”参数的类型吗?但是我无法自行解决。
最佳答案
gcc -W -Wall
提供警告:
tmp-test.c:7:27:注意:预期为'char **',但参数的类型为'char(*)[8]'
您可以将数组传递为
void inicializaVet(char v[TAM_VETOR][8], int tamVet)
或作为
void inicializaVet(char v[][8], int tamVet)
关于c - C strcpy()在函数内部但不在main()上时中断,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53094439/
10-10 18:52