ISO C委员会(ISO/IEC JTC1/SC21/WG14)已发布TR 24731-1,正在研究TR 24731-2:
TR 24731-1:C库的扩展第一部分:边界检查接口
WG14正在研究更安全的C库函数.该TR旨在通过添加具有缓冲区长度的额外参数来修改现有程序.最新草案见N1225号文件.理由是在N1173号文件中.这将成为技术报告类型2.
TR 24731-2:C库的扩展 - 第二部分:动态分配功能
WG14正在研究更安全的C库函数.该TR面向使用动态分配而不是缓冲区长度的额外参数的新程序.最新草案见N1337号文件.这将成为技术报告类型2.
我用这个代码:
memcpy(arr[i], arr1[i], sizeof(arr1[i]));
Run Code Online (Sandbox Code Playgroud)
定义:
double** arr; // arr1 is difined the same way.
arr = new double*[row];
for (int i = 0; i < row; ++i) {
arr[i] = new double[col];
memcpy(arr[i], arr1[i], sizeof(arr1[i]));
}
Run Code Online (Sandbox Code Playgroud)
我用命令构建它:g++ -Wall -Wextra -Wpedantic -c arr.cpp结果:
警告:'void*memcpy(void*,const void*,size_t)'调用中'sizeof'的参数与目标的指针类型'double*'相同; 预期的'double'或显式长度[-Wsizeof-pointer-memaccess]
memcpy(arr[i], arr1[i], sizeof(arr1[i]));
^
Run Code Online (Sandbox Code Playgroud)
我不明白它是什么.你能告诉我如何让它正常工作吗?