注册 登录
编程论坛 C++教室

关于new替代malloc时遇到的问题

khaz 发布于 2011-07-03 11:07, 473 次点击
考虑到c的scanf和malloc的一些不好的特性,本人想用cin 代替scanf,用new代替malloc,下面是一段可以正常编译运行的程序,但其中的malloc如果换成new就编译通过不了,想请教一下如果改成new应该如何写?另外如果用typedef,然后再new又如何写?

#include <iostream>
using namespace std;
int main()
{
        int i,line;
        cout<<"plz input the line"<<endl;
        cin>>line;
        char (*p)[5];
        p=(char (*)[5])malloc(sizeof(*p)*line);
        //p= new (char(*)[5])[line];  这样写代替上句通过不了  
              
        for(i=0;i<line;i++){
        strcpy(p[i],"1234");
        cout<<"p["<<i<<"]="<<p[i]<<endl;
        }
        return 0;
}



2 回复
#2
玩出来的代码2011-07-03 12:41
typedef char (*Ptr)[5];
Ptr p=new char[line][5];
#3
khaz2011-07-03 12:47
谢谢楼上
1