malloc
1. 某32 位系统下, C++程序,请计算sizeof 的值。
- char str[] = “http://www.ibegroup.com/” ;
- char *p = str ;
- int n = 10;
- 请计算
- sizeof (str ) = ?(1)
- sizeof ( p ) = ?(2)
- sizeof ( n ) = ?(3)
- void Foo ( char str[100]){
- }
- 请计算
- sizeof( str ) = ?(4)
- void *p = malloc( 100 );
- 请计算
- sizeof ( p ) = ?(5)
复制代码
答案是:
(1).25 (2).4 (3).4 (4).4 (5).4
2. 如程序清单11. 1 所示,请问运行Test 函数会有什么样的结果?
程序清单11. 1 malloc()的应用1
- void GetMemory(char *p)
- {
- p = (char *)malloc(100);
- } void Test(void)
- {
- char *str = NULL;
- GetMemory(str);
- strcpy(str, "hello world");
- printf(str);
复制代码
3. 如程序清单11. 2 所示,请问运行Test 函数会有什么样的结果?
程序清单11. 2 malloc()的应用2
- char *GetMemory(void)
- {
- char p[] = "hello world";
- return p;
- }
- void Test(void)
- {
- char *str = NULL;
- str = GetMemory();
- printf(str);
- }
复制代码
4. 如程序清单11. 3 所示,请问运行Test 函数会有什么样的结果?
程序清单11. 3 malloc()的应用3
- void GetMemory(char **p, int num)
- {
- *p = (char *)malloc(num);
- } void Test(void)
- {
- char *str = NULL;
- GetMemory(&str, 100);
- strcpy(str, "hello");
- printf(str);
- }
复制代码
5. 如程序清单11. 4 所示,请问这个会是输出什么?
程序清单11. 4 malloc()的应用4
- #include <stdio.h>
- char *str()
- {
- char *p = "abcdef";
- return p;
- } int main(int argc, char *
- argv[])
- {
- printf("%s", str());
- return 0;
- }
复制代码
|