一道C++关于指针的题:

qiudacheng 2007-11-02 11:56:25
某图书馆: 写一个函数, 这个函数需要返回N本图书的信息(N本书里带有书名)

void main(void)
{
//......
char **a;
a = function();
//在什么地方 delete ?
}

char ** function()
{
//......
//经过查询, 发现有N本书
//我要把这N本书存在 *p[N]里.
//例: *p[N] = {"高中数学辅导", "英语单词速记", "中小学语文读本", "高中物理"... 共有N本};
char *p = new char(N);
//.....
return (不知道怎样写);
}

我的大概思路如上, 但不知道怎样写, 请详解, 谢谢
...全文
180 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
就呆在云上 2007-11-08
  • 打赏
  • 举报
回复

#include "stdafx.h"
#include <iostream>

using namespace std;

const int N = 5;

void function(char a[][20]);

int _tmain(int argc, _TCHAR* argv[])
{
char a[N][20];
function(a);
for (int i = 0; i < 4; i++) {
cout << a[i] <<endl;
}
return 0;
}

void function(char a[][20]) {
char *p[N] = {"数学", "物理", "化学", "体育"};
for (int i = 0; i < 4; i++) {
cout << p[i] <<endl;

strcpy_s(a[i], p[i]);
}
}
never517 2007-11-08
  • 打赏
  • 举报
回复
把指针定义成static的可以吗?然后在不会使用到那块堆内存的地方delete就好
believefym 2007-11-02
  • 打赏
  • 举报
回复
有点乱
char*p[N] = { "高中数学辅导 ", "英语单词速记 ", "中小学语文读本 ", "高中物理 "};
指针数组,这里已经不需要new了,也就不需要delete了,但是你在函数里面定义数组,返回后数组内存会被回收,
应该用**,new出来
BluntBlade 2007-11-02
  • 打赏
  • 举报
回复
实现一个内存分配器好嘞。
yuyunliuhen 2007-11-02
  • 打赏
  • 举报
回复
mark

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧