使用你的代码还在报错 [Error] 'new' undeclared (first use in this function)
时间: 2023-06-24 14:07:04 浏览: 986
这个错误通常是因为在代码中使用了`new`关键字,但是没有包含所需的头文件。`new`关键字是用于在堆上动态分配内存的,它的定义在`<new>`头文件中。
你可以尝试在代码中添加以下头文件:
```c++
#include <new>
```
如果还是出现同样的错误,可能是因为你的编译器不支持C++动态内存分配。在这种情况下,你可以尝试使用C语言中的`malloc`和`free`函数来代替`new`和`delete`。
```c++
// 动态分配内存
int* p = (int*)malloc(sizeof(int));
// 使用内存
*p = 123;
// 释放内存
free(p);
```
相关问题
你给的代码报错如下[Error] 'arr' undeclared (first use in this function)
非常抱歉,我在修正代码时将数组名写错了。在 `sorted` 函数中,应该使用指针变量 `p` 而不是数组名 `arr` 来访问二维数组的元素。下面是修改后的代码:
```
void sorted(int n, int* p) {
int* max = p;
int* min = p;
int* max_ptr = p;
int* min_ptr = p;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (*(p + i * n + j) > *max) {
max = p + i * n + j;
max_ptr = p + i * n + j;
}
if (*(p + i * n + j) < *min) {
min = p + i * n + j;
min_ptr = p + i * n + j;
}
}
}
printf("%d %d", *max_ptr, *min_ptr);
}
```
请尝试使用这个修正后的代码,如果还有问题,请告知我。
error: ‘null’ undeclared (first use in this function)
这个错误是因为在您的代码中使用了未声明的标识符 "null"。在C语言中,"null" 是一个空指针常量,应该使用 "NULL" 来表示空指针。
您可以尝试将 "null" 替换为 "NULL",然后重新编译您的代码。这样应该可以解决该错误。例如:
```
int* ptr = NULL;
```
如果问题仍然存在,请检查您是否正确包含了相关的头文件,例如 `<stdio.h>` 或 `<stdlib.h>`。这些头文件中通常会定义 "NULL" 的宏定义。
如果问题仍然存在,请提供更多的代码和错误信息,以便我能够更具体地帮助您解决问题。
阅读全文