我一直在阅读关于字符串数组的其他一些问题。我提出了一些见解并改变了我的代码,但我遇到的一个问题是并入sprintf。C编程 - Sprintf和字符串阵列
高级别,其目的将最终成为一个功能,打开/ fread目录中的可变数量的文件。但挂在这个字符串操作部分。
我想在sprintf中增加我的指针,但是我遇到了细分问题。关于修复我拥有的或者不同的路线的任何想法? MAX = 20,FILES = 4
char fName_A[MAX];
char fName_B[MAX];
char * ptr_A[FILES];
char * ptr_B[FILES];
int i;
for(i=0; i<FILES; i++){
sprintf(fName_A, "waveA00%d.bin", i);
sprintf(fName_B, "waveB00%d.bin", i);
ptr_A[i] = fName_A;
ptr_B[i] = fName_B;
printf("Ch1 File Number %d is named %s\n", i, *(ptr_A+i));
printf("Ch2 File Number %d is named %s\n", i, *(ptr_B+i));
}
printf("fName_A[0] = %s\n", *ptr_A);
printf("fName_A[1] = %s\n", *(ptr_A + 1));
printf("fName_A[2] = %s\n", *(ptr_A + 2));
printf("fName_A[3] = %s\n", *(ptr_A + 3));
return 0;
*调试这个*,你会发现在'ptr_A'点每个指针到相同的缓冲'fName_A',同样有带有指针和缓冲区的'B'端。这意味着您为每个文件写入的* last *文件名将被复制到指针数组中,因为它们都是相同的地址。 – WhozCraig
忘记包括我的结果,基本上我的指针只接受最后一个循环项目,这是我测试后的所有printf语句。我想这会发生,但我有分段错误传递指针本身。 – kwalsh
@WhozCraig确切 – kwalsh