我一直在閱讀關於字符串數組的其他一些問題。我提出了一些見解並改變了我的代碼,但我遇到的一個問題是併入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