在 C 中按值将一维数组的内容复制到另一个

标签 c arrays

我正在尝试按值将动态分配数组 stillPlaying 的内容复制到 tmpIntArray,只要该值不是 -1,即 tmpIntArray 应该包含 stillPlaying 中的所有值,没有 -1

我在尝试编译时收到错误消息 subscripted value is neither array nor pointer nor vector

tmpIntArray = (int*) malloc(nParticipantsLeft*sizeof(int));
for(i = 0; i < nParticipantsLeft; i++)
{
  if (stillPlaying[k] == -1)
     k++;
  tmpIntArray[i] = stillPlaying[k];
}

感谢您帮我解决这个看似简单的问题。

文件顶部的声明:

int * stillPlaying,  //points to array of IDs for players who are not out
      tmpIntArray;   //holds the intermediate version of stillPlaying

最佳答案

将声明更改为

int *stillPlaying,
      *tmpIntArray;  //Notice *

根据您之前的声明,stillPlayingpointertemIntArrayint(不是 pointer)

此外,确保为 tmpIntArray 分配内存

关于在 C 中按值将一维数组的内容复制到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22291929/

相关文章:

javascript - 使用 for 循环获取数组中的值

python - Numpy 双重求和

c - 我在一个函数中将值添加到 C 数组中,但在后面的函数中数组仍然为空,这是怎么回事?

c - 如何创建一个仅使用指针转置矩阵的就地方法?

C++ 在指向结构的指针中设置数组

java - 白色和黑色图像到二维数组以及经过一些操作后二维数组到Java中的图像

java - 在 Java 中按第一个值对数组对进行排序

c++ - C/C++ 链表永远不为空

C电话本程序: Reposition cursor in text file to start of previous line

c - printf 不使用格式说明符的潜在问题