我相信我这样做是对的,但我想确定一下。在一个程序中,我使用了两个指向函数返回的分配内存的指针。当我完成使用该内存free()
时,我会使用相同的指针指向新分配的内存空间。这是我的程序,以举例说明我的意思(评论显示我的思考过程):
int main(void)
{
char *data, *url;
int i = 1;
while(i)
{
printf("Enter URL: ");
if(!(url = getstr())) return 1; //url now points to allocated memory from getstr();
if(strlen(url) <= 0) i = 0;
if(data = readsocket(url, 80, "http")) printf("\n%s\n\n", data); //data now points to allocated memory from readsocket();
else printf("\n\n");
free(url); //free allocated memory that url points to url
free(data); //free allocated memory that data points to data
}
return 0;
}
这是正确的,还是有更好的更普遍的首选方法?还是我完全做错了?