C/C++中为二维数组分配内存
今天参加笔试,其中有两题是分配内存的,第一题是动态分配一个一维数组,第二个题是动态分配一个二维数组.第一题和第二题我分别是这样写的:
/*第一题*/
p=(float*)malloc(sizeof(float[M]));
/*第二题*/
p=(float*)malloc(sizeof(int[M][N]));
结果说我第二题错了,我还不明白错哪了,我又问写成M*N对不,结果还是说不对.刚查了一下,二维数组应该分别第一维和第二维分配空间,而我一次就分配了,所以错在这里了,正确的应该这样:
int i;
int **p;
p=(int*)malloc(sizeof(int)*M);/*给行分配空间*/
for(i=0;i<M;i++)
{
p[i]=(int*)malloc(sizeof(int)*N);/*给列分配空间*/
}
整体意思就是分配M行,每行有N个单元,即第一维都是指向N个单元的指针.
参考:http://www.docin.com/p-2706237.html
相关文档:
VB
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = i1
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferCount = 0
& ......
继前篇《Import Module》(http://blog.csdn.net/xiadasong007/archive/2009/09/02/4512797.aspx),继续分析嵌入部分基础知识。这次不多说,有什么问题记得多查英文资料,国内的这方面知识少
还是来看代码,写完我就睡觉了~
#include "python/python.h"
#include <iostream>
using namespace std;
int ......
C++内存分配秘籍—new,malloc,GlobalAlloc详解
......
C 中,
int 和long的范围一样,只能表示(-2^31~2^31)整数,即(-20亿~ 20亿)
unsigned int 与unsigned long 范围是(0 ~2^32),40亿多一点。
如果要表示更大一些的整数,这两种数据类型就不好用了,在ACM中经常要处理这样的数据类型,以前我的笨方法是做一个整形数组,每个a[i]存一位,这样加减 ......