【发布时间】:2019-02-07 23:32:14
【问题描述】:
我正在尝试交换指针数组中的 2 个元素,这些指针指向不同长度的字符串。另一个函数处理为数组和字符串分配内存,交换函数将简单地获取一个 char** 数组并交换我需要交换的元素。我想知道的是,当我交换指针时,为每个字符串分配的内存是在我交换时保留还是搞砸了?
这不是我项目中的确切代码,但它的作用是相同的:
int main() {
char** array = malloc(10 * sizeof(char*));
char* a = (char*)malloc(4*sizeof(char*));
char* b = (char*)malloc(14*sizeof(char*));
a = "test";
b = "this is a test";
array[0] = a;
array[1] = b;
char*temp;
temp = array[0];
array[0] = array[1];
array[1] = temp;
free[array];
free[a];
free[b];
return 0;
}
太概括了,我的问题是关于 a 和 b 的分配内存。交换后分配的内存是否仍然正确/正常?
【问题讨论】:
标签: c arrays string memory malloc