newNode是一个结构体指针,newNode->arr=arr;为什么有问题
时间: 2023-05-26 19:05:20 浏览: 101
结构体指针
这里需要根据具体的上下文来判断有没有问题。
如果定义的结构体为:
```
struct Node {
int* arr;
};
```
那么 `newNode->arr=arr;` 是没有问题的,它是把指针 `arr` 的值赋值给 `newNode` 指向的结构体的 `arr` 成员变量。
但如果定义的结构体为:
```
struct Node {
int arr[];
};
```
则 `newNode->arr=arr;` 是有问题的。因为这种定义方式是可变长数组的写法,它并不是一个指针类型,而是一个数组类型。这样赋值操作是不合法的。需要使用 `memcpy()` 函数将 `arr` 中的数据复制到 `newNode` 指向的空间中。
阅读全文