【发布时间】:2015-04-21 19:01:43
【问题描述】:
我有一个巨大的无符号字符数组(称为 main_data),其中包含一些数据,这些数据会不时刷新。我想创建一个指向 main_data 的每个 n 元素的指针数组(称为 plot_data)。 我们的想法是从外部源将新数据上传到 main_data,并自动减少可用于我的绘图的 plot_data。 这是我最接近的尝试(它是用托管 C++、VC++ 2010、WinForms 项目编写的):
int mainDataSize = 64;
int plotDataSize = 8;
unsigned char* main_data = new unsigned char[mainDataSize];
for (int i = 0; i < mainDataSize; i++) {
main_data[i] = 2 * (i % 32);
}
unsigned char* plot_data = new unsigned char[plotDataSize];
for (int i = 0; i < plotDataSize; i++) {
int idx = (int)(mainDataSize / plotDataSize * i);
plot_data[i] = main_data[idx];
}
printf("Original data:\n");
for (int i = 0; i < mainDataSize; i++) {
printf("%d ", main_data[i]);
}
printf("\n\nData for plot:\n");
for (int i = 0; i < plotDataSize; i++) {
printf("%d ", plot_data[i]);
}
那么,在修改main_data之后,我希望打印指针数组会给我修改后的值。这是修改和打印的代码:
for (int i = 0; i < mainDataSize; i++) {
main_data[i] = i;
}
printf("\n\nChange made - Main data:\n");
for (int i = 0; i < mainDataSize; i++) {
printf("%d ", main_data[i]);
}
printf("\n\nChange made - Plot data:\n");
for (int i = 0; i < plotDataSize; i++) {
printf("%d ", plot_data[i]);
}
我已经尝试修复此问题几个小时,但似乎我没有得到任何东西,这应该相对简单。请帮助我理解我的错误。
【问题讨论】:
-
I would like to create an array (called plot_data) of pointers你到底是在哪里做的? -
plot_data是main_data的一个副本。如果你想进入main_data,你只需要plot_data = main_data + starting_index。 -
unsigned char* plot_data = new unsigned char[plotDataSize];这不是一个指针数组。 -
是的,这就是问题所在......
标签: c++ arrays pointers visual-c++