亲爱的 Stack Overflow 家人 - 新年快乐!!!祝大家度过愉快的时光。
我需要帮助来学习 C 语言的内存管理(也许还有通用计算)。一些参考书会很棒。以下所有问题均特定于 C 编程。
提前致谢, 迈赫迪
没有具体问题 - 只是需要建议。
C中有栈和堆。 堆栈上的内存是静态分配的。例如,
char c[2] = { 'c', 'q'};
分配在堆栈上。
但,
char* c = malloc(sizeof(char)*2);
分配在堆上。
以下是在 C 中迭代字符串文字的方法
char str[] = "example";
char *ptr = str;
while(*ptr != '\0') { // *ptr dereferences the pointer
printf("%c", *ptr);
ptr++;
}
内存分配:编译器不使用寄存器来跟踪空闲内存槽。内存管理是在运行时完成的。 对于动态分配,使用 malloc() 和 free() 等函数来请求和释放内存。 静态/局部变量的内存是自动管理的 - 在范围内分配,在范围外时释放。