我的数组定义如下
int buffSize = 80;
char* buff = (char*) malloc(sizeof(char) * buffSize);
首先,我认为&buff
应该与&buff[0]
相同,但显然,它不是!我在这里错过了什么吗?
该语句为这两个值打印两个不同的值:
printf("COMPARE: buff=%u, buff[0]=%u\n", &buff, &buff[0]);
其次,我问的原因是因为我试图创建一个大缓冲区并且"手动"将其划分为与getline
一起使用。
基本上,我想做这样的事情:
int byte_read, total_read = 0;
do
{
read = getline(&buff[totalRead], buffSize, inFile); //where inFile is just a file handler
totalRead += read;
}
while (byte_read > 0);
答案 0 :(得分:4)
buff
是一个指针,&buff
是该指针的地址。另一方面,&buff[0]
是指针指向的位置的地址,应该与buff
具有相同的值。
总之,期望buff
和&buff[0]
具有相同的价值。