#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <stdio.h> int main() { int fd; int count1,count2; char buffer[100]; fd = open("data",O_RDWR); printf("fd is %d\n",fd); count1 = read(fd,buffer,100); printf("buffer is %s\n length is %d\n",buffer,count1); count2 = read(fd,buffer,100); printf("buffer is %s\n length is %d\n",buffer,count2); } 为什么我把char buffer[100]改为char *buffer就读取失败了 ?read 的返回结果是-1。 |
|
20分 |
都没有分配内存,往哪里读入呢?
|
意思是必须用malloc分配一块空间才行是吧。 |
|
5分 |
没地方存。。。
|
char *buffer = “test” |
|
5分 |
#pragma comment(linker,”/SECTION:.rdata,RW”)
//加这句可以让常量区可写,后果自负! |
5分 |
char *str;只是定义了一个指针,没有指向可用的内存,而char str[100]是定义了一个字符数组,长度为100,本身就是一块可用的内存。
|
5分 |
楼上各位大哥已说出原委,,,,char *只分配了自己这个指针数据类型的4个字节的内存,而字符数组是真真正正的在内存中开辟了一块用于存字符的空间。
|
谢谢楼上 各位的解答。看来我对这个存储空间没怎么考虑,以为有个地址就行了。
|