我想初始化一个字符串数组,每个位置都具有相同的值。所以我正在尝试这段代码:
#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() 正在运行。
我尝试将相同的代码放在主函数下并且它有效,我想我的错误在于“initializaVet”的参数类型?但我自己无法弄清楚。
最佳答案
gcc -W -Wall
提供警告:
tmp-test.c:7:27: note: expected ‘char **’ but argument is of type ‘char (*)[8]’
您可以将数组传递为
void inicializaVet(char v[TAM_VETOR][8], int tamVet)
或作为
void inicializaVet(char v[][8], int tamVet)
关于C strcpy() 在函数内部但不在 main() 上时中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53094439/