【发布时间】:2011-10-25 17:26:03
【问题描述】:
我是 c 的新手。只是对c中的字符数组(或字符串)有疑问:当我想在C中创建一个字符数组时,我必须同时给出大小吗?
因为我们可能不知道我们实际需要的尺寸。比如客户端-服务端程序,如果我们想声明一个字符数组让服务端程序接收来自客户端程序的消息,但是我们不知道消息的大小,我们可以这样:
char buffer[1000];
recv(fd,buffer, 1000, 0);
但是如果实际消息的长度只有 10 怎么办。这会导致大量内存浪费吗?
【问题讨论】:
-
在 C 中搜索“动态内存分配”
-
正如您所说,这将是“浪费”内存,因为您不能期望提前知道需要保留多少。因此,您将保留足够的资金,以应对大多数情况,同时仍然意识到您实际上可能需要更多。
-
你不会在 C++ 中遇到这个问题,它有一个内置的字符串类型而不是使用字符数组。当然,你可能有一大堆不同的问题,但也许你应该看看。