【发布时间】:2020-05-15 02:17:37
【问题描述】:
我想要一个由 10 个指针组成的数组,这些指针指向字符数组。为了简单起见,让它们都指向同一个字符数组。这是一种方法:
const int N = 10;
char arr[] = {'a', 'b', 'c', '\0'};
char *pArr[N] = {NULL};
for (int i = 0; i < N; i++)
pArr[i] = &arr[0];
不要调用pArr[i] = &arr[0],我可以一个一个地分配字符吗?类似于:
for (int i = 0; i < N; i++)
for (int j = 0; j < 3; j++)
pArr[i][j] = arr[j];
除了这个代码段错误。作业的右侧是否必须是地址?
编辑:我希望能够删除arr 但不会丢失pArr 中的数据。我想我只需要一个二维数组。
【问题讨论】:
-
“我想要一个数组,比如说,10 个指向字符数组的指针”确定吗?为什么不是
std::vector<std::string>?它以更少的麻烦实现了相同(甚至更多) -
如果使用 C++,为什么要使用 c-pointer 样式?
-
你是
pArr[i][j],但p[i]是 NULL。 -
你想在这里访问什么
pArr[i][j]? -
你真正想要实现什么?为什么你认为你需要一个指向
char的 c 数组的指针数组?
标签: c++ arrays pointers segmentation-fault c-strings