-
传统的解决方案是分配一个指针数组,
然后把每个指针初始化为动态分配的“列”。
以下为一个二维的例子:
#include <stdlib.h>...
-
现象:当我向一个接受指针的指针的函数传入二维数组的时候, 编译器报错了。
数组蜕化为指针的规则(参见问题6.3) 不能递归应用。
数组的数组(即C 语言中的二维数组) 蜕化为数...
-
这并非易事。
一种办法是传入指向[0][0] 成员的的指针和两个维数, 然后“手 工” 模拟数组下标。
void f2(int *ARyp, int n...
-
没有完美的方法。
假设有如下声明
int ARray[NROWS][NCOLUMNS];
int **ARray1; /* 不齐的*/
int **ARray2; /* 连...
-
问题:为什么这段代码不行?
chAR *answer;
printf("Type something:\n");
gets(answer);
printf("You typ...
-
我的strcat() 不行.
我试了chAR *s1 = "Hello, "; chAR *s2 ="world!"; chAR *s3 = strcat(s1, s2);
但...
-
我有个函数, 本该返回一个字符串, 但当它返回调用者的时候, 返回串却是垃圾信息。
确保指向的内存已经正确分配了。
例如, 确保你没有做下面这样的事情:
chAR *itoa...
-
字符和字符串的区别显而易见, 而strcat() 用于连接字符串。
C 中的字符用它们的字符集值对应的小整数表示, 参见下边的问题8.4。
字符串用...
-
我在检查一个字符串是否跟某个值匹配。
为什么这样不行?
chAR *string;
. . .
if(s...
-
在C语言中字符用它们的字符集值对应的小整数表示。
因此, 你不需要任何转换函数:
如果你有字符, 你就有它的值。
数字字符和它们对...
-
对于这个问题没有什么好的答案。
如果这两个值是整数, 可以使用异或的技术, 但是这对浮点值或指针却不行, 对同一个值也无能为力。
(参见问题3.4和...
-
通常的目标是书写一个象包含一个单独的函数调用语句的宏。
这意味着“调用者”需要提供最终的分号, 而宏体则不需要。
因此宏体不能为简单的括弧包围的复合语句...
-
一种流行的技巧是用一个单独的用括弧括起来的的“参数” 定义和调用宏,
参数在宏扩展的时候成为类似printf() 那样的函数的...
-
问题:
很多ANSI 编译器在遇到以下代码时都会警告类型不匹配。
extern int func(float); int func(x) float x; { . . .
你...
-
你可以向接受const-T 的指针的地方传入T 的指针(任何类型T都适用)。
但是,
这个允许在带修饰的指针类型上轻微不匹配的规则(明显的例外)却...
-
有些ANSI 前的编译器/预处理器把下面这样的宏
#define TRACE(vAR, fmt) printf("TRACE: vAR = fmt\n", vAR)
解释为
...
-
第一, 保存getchAR的返回值的变量必须是int型。
getchAR() 可能返回任何字符值, 包括EOF。
如果把getchAR 的返回值截为...
-
strncpy() 最初被设计为用来处理一种现在已经废弃的数据结构——定长, 不 必’n0’ 结束的“字符串&rdquo...
-
确保你知道经典的正则表达式和文件名通配符的不同。
前者的变体在Unix工具ed 和grep 等中使用, 后者的变体在多数操作系统中使用。
有许多匹配正则表达式的包可以利用。
...
-
问题:我想用strcmp() 作为比较函数, 调用qsort() 对一个字符串数组排序, 但是不行。你说的“字符串数组” 实际上是“字符指针数组...