我試圖讀入一個作爲指向這個函數的指針傳遞的緩衝區。 memcpy()
工作正常,數據正確存儲在buffer
,但是當我訪問buffer
以外的功能是null
。有一些指針問題,我沒有在這裏。修改緩衝區作爲指針傳遞
下面是代碼,我拿出了大部分代碼,我知道它會正確複製數據,但它不會將它傳遞給buffer
指針。想法?
int read(file file, char *buffer , int maxlen) {
int bytes_read;
// copy data to file buffer
bytes_read = min(maxlen, file->file_size - file->cursor);
buffer = (char*) malloc(bytes_read);
memcpy(buffer , file->buffer + file->cursor, bytes_read);
return bytes_read;
}
你需要一個char **緩存通過。 – OldProgrammer
正如@OldProgrammer所指出的那樣,你實際上並沒有將一個引用傳遞給緩衝區 - 你將一個引用傳遞給單個字符。 – reuben
@reuben不,他正在傳遞一個指針。 C. – 2013-12-14 22:40:57