我正在嘗試使用從文件中的行填充字符串數組的函數,但編譯器(GCC)仍然給我一個警告。比我嘗試運行編譯應用程序,它給了我 「分段錯誤」 錯誤
源代碼:
將行讀入到字符串數組
主要
#include <stdio.h>
#include "getAdresses.h"
int main(int argc, char **argv){
char adresses[1024][128];
getAdresses(adresses);
printf("%s", adresses[1]);
}
getAdresses
include <stdio.h>
int getAdresses(char **adresses){
FILE *fr;
fr = fopen("adresses", "r");
int i = 0;
while(adresses[i-1][0] != EOF){
fscanf(fr, "%s\n", &adresses[i]);
i++;
}
}
它給我這個錯誤:
main.c: In function ‘main’:
main.c:9:2: warning: passing argument 1 of ‘getAdresses’ from incompatible pointer type [enabled by default]
In file included from main.c:3:0:
getAdresses.h:1:5: note: expected ‘char **’ but argument is of type ‘char (*)[128]’
所以兩diemensional陣列罷工再次... – Dariusz
AFAIKT它的「只是」一個警告,所以代碼至少應該工作。我認爲從文件中讀取未綁定不是一個好主意。如果您嘗試閱讀更多的1024個「字符串」,您認爲會發生什麼? – Friedrich
編譯器告訴你你做錯了什麼。它是一個警告,因爲它可能是你的意思是通過錯誤的類型,但如果你不明白的警告,那麼你應該把它視爲致命的。 – pm100