【发布时间】:2021-12-05 00:37:17
【问题描述】:
我的程序有问题。
当我启动程序时,控制台没有显示它应该显示的 2 个数字,而是只显示:
Process returned -1073741819 (0xC0000005) execution time : 1.759 s
这是我的代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
Test(int* Ptr)
{
Ptr=(int*)malloc(8);
if(Ptr==0)
{
printf("malloc error\n");
}
Ptr[0]=155;
Ptr[1]=800;
}
int main()
{
int* m_Ptr=0;
Test(m_Ptr);
printf("%d %d",m_Ptr[0],m_Ptr[1];
return 0;
}
【问题讨论】:
-
您是否尝试过调试程序?您将
m_Ptr按值传递给Test,因此打印取消引用原始空指针。 -
试试这个:
Test(int*& Ptr) -
它甚至无法编译。您在第二个
printf末尾缺少),在return语句中缺少;。这是你实际编译的吗?它是program,美式拼写... -
这看起来像 C,而不是 C++。你确定你知道你的程序应该使用哪种语言吗?
标签: c function pointers arguments