[英]C - Memory Access Violation (But Why?)
我做了一個小程序,它應該讀取一個文件並打印出它的內容(是的,它正好是 14 個字節:)
# include <stdio.h>
# define FILE_SIZE 14
int main ()
{
FILE *fp = fopen("file.txt", "r");
char *buf[FILE_SIZE];
fread(buf, FILE_SIZE, 1, fp);
for (int i = 0; i < FILE_SIZE; i++) printf("%c", *buf[i]);
}
如果我運行它,則會發生Memory Access Violation
。
我猜這是由*buf[i]
引起的,因為如果我刪除*
,一切正常。
(好吧,我得到了神秘的字符,但這沒關系,不是嗎?)
現在,我的問題是:為什么buf[i]
有效,但*buf[i]
無效?
哎呀buf
不應該是指向字符的指針數組,而是字符數組
char buf[FILE_SIZE];
和
printf("%c", buf[i]);
沒有崩潰
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.