c/c++µÄ֪ʶµãÊÕ¼¯
1.¶¯Ì¬»ñµÃÄÚ´æµÄ´úÂë:
void GetMemory(char **p, int num)
{
*p = (char *)malloc(sizeof(char) * num);
}
char* GetMemory2(int num)
{
char* p = (char *)malloc(sizeof(char) * num);
return p;
}
------------------------------------------
´íÎóµÄ´úÂë:
void GetMemory3(char *p, int num)
{
p = (char *)malloc(sizeof(char) * num);
}///////////////´íÎóÔÚÄÄÀï,ÎҾͲ»Ëµ,×Ô¼ºÈ¥²é.
2.strcpy()µÄ´úÂë:
char* strcpy(char* strDest,const char* strSrc)
{
if(strDest==NULL || strSrc==NULL) return NULL;
char* pStr=strDest;
while((*strDest++=*strSrc++)!='\0)
NULL;
return pStr;
}
3.memcpy()µÄ´úÂë:
void* memcpy(char* strDest,const char* strSrc,size_t size)
{
if(strDest==NULL||strSrc==NULL) return NULL;
if(size <=0) return NULL;
char* pStr=strDest;
while(size-->0)
*strDest++=*strSrc++;
return pStr;
}
4.¹ØÓÚsizeof²Ù×÷·û:
char 1
short 2
short int 2
signed short 2
unsigned short 2
int 4
long
Ïà¹ØÎĵµ£º
1. java ÊÇÔËÐÐÔÚjvmÉϵģ¬Ö®ËùÒÔ˵ËüµÄ¿ÉÒÆÖ²ÐÔÇ¿£¬ÊÇÒòΪjvm¿ÉÒÔ°²×°µ½ÈκεÄϵͳ
c++²»ÊDz»ÄÜÔÚÆäËûϵͳÔËÐУ¬¶øÊÇc++ÔÚ²»Í¬µÄϵͳÉÏÔËÐУ¬ÐèÒª²»Í¬µÄ±àÂ루ÕâÒ»µã²»Èçjava£¬Ö»±àдһ´Î´úÂ룬µ½´¦ÔËÐУ©
2. java ÔÚweb Ó¦ÓÃÉϾßÓÐc++ Î޿ɱÈÄâµÄÓÅÊÆ
3. javaÔÚ×ÀÃæ³ÌÐòÉϲ»Èç ......
Ò»£¬²»Í¬¹Ø¼ü×Ö£¬ÏµÍ³Ñ¹Õ»·½Ê½
1£¬Èç¹ûº¯ÊýfuncÊÇ__cdecl(VCϵÄĬÈϵ÷Ó÷½Ê½)£¬µ÷ÓÃʱÇé¿öÈçÏÂ
int main()
{
//²ÎÊý´ÓÓÒµ½×óѹջ
push 4
push 3
push 2
push 1
call func
add esp 0x10 //µ÷ÓÃÕ߻ָ´¶ÑÕ»Ö¸Õëesp£¬4¸ö²ÎÊýµÄ´óСÊÇ0x10(4x4)
}
Cµ÷ÓÃÔ¼¶¨£¨¼´ÓÃ__cdecl¹Ø¼ü×Ö˵Ã÷£©°´´ÓÓÒÖÁ×óµÄ˳Ðòѹ² ......
#include <stdio.h>
struct Foo1
{
char a;
int b;
char c;
int d;
};
#pragma pack (2)
struct Foo2
{
char a;
int b;
char c;
int d; ......