谁知道动态数组怎样用?

springsea 2000-12-11 08:30:00
加精
:《〈〈
...全文
231 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wu_xin 2001-02-20
  • 打赏
  • 举报
回复
Variant MyVariant(OPENARRAY(int,(0,5)),varInteger);
一维
Variant MyVariant(OPENARRAY(int,(0,5,0,5)),varInteger);
二维

是这样定义了?
我不懂电脑 2001-02-20
  • 打赏
  • 举报
回复
哈哈,有天理的话这50分该我得,请快点加分要年终结算了。
我不懂电脑 2001-02-20
  • 打赏
  • 举报
回复
你们的都不对,动态数组必须在程序运行期间动态改变大小。
用malloc():为指针分配空间。
和realloc():动态调整指针分配空间
配合实现。注意要包含stdlib.h。示例如下:
#include <stdio.h>
#include <alloc.h>
#include <string.h>

int main(void)
{
char *str;

/* allocate memory for string */
str = (char *) malloc(10);

/* copy "Hello" into string */
strcpy(str, "Hello");

printf("String is %s\n Address is %p\n", str, str);
str = (char *) realloc(str, 20);
printf("String is %s\n New address is %p\n", str, str);

/* free memory */
free(str);

return 0;
}
tgshsl 2001-02-03
  • 打赏
  • 举报
回复
#include <exception>
#include <iostream>

using std::cout;
using std::endl;
void display(long double **);
void de_allocate(long double **);

int m = 3; // THE NUMBER OF ROWS.
int n = 5; // THE NUMBER OF COLUMNS.

int main(void) {
long double **data;

try { // TEST FOR EXCEPTIONS.
data = new long double*[m]; // STEP 1: SET UP THE ROWS.
for (int j = 0; j < m; j++)

data[j] = new long double[n]; // STEP 2: SET UP THE COLUMNS
}
catch (std::bad_alloc) { // ENTER THIS BLOCK ONLY IF bad_alloc IS THROWN.
// YOU COULD REQUEST OTHER ACTIONS BEFORE TERMINATING
cout << "Could not allocate. Bye ...";
exit(-1);
}

for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
data[i][j] = i + j; // ARBITRARY INITIALIZATION

display(data);
de_allocate(data);
return 0;

}

void display(long double **data) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++)
cout << data[i][j] << " ";
cout << "\n" << endl;
}
}

void de_allocate(long double **data) {
for (int i = 0; i < m; i++)
delete[] data[i]; // STEP 1: DELETE THE COLUMNS

delete[] data; // STEP 2: DELETE THE ROWS

}
yiwei 2000-12-20
  • 打赏
  • 举报
回复
FAINT,学了C没有啊?二维数组和一维数组有什么区别?!
bighead 2000-12-20
  • 打赏
  • 举报
回复
如何动态定义二维数组呢?
BCB 2000-12-11
  • 打赏
  • 举报
回复
int *Number=new int[1000];

for (int i=0;i<1000;i++)
Number[i]=i*10+67;

delete []Number;
Hank 2000-12-11
  • 打赏
  • 举报
回复
int *Number;
Number=new int[];
. <--必须先定义然后赋值
.
.
delete []Number; <--是不是感到这句很奇怪!

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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