求教几个基本问题

whzhhit 2006-06-13 11:34:59
1:#define n_node 3
float global_k[2*n_node][2*n_node]={0};
我想定义一个2*n_node行和2*n_node列的数组,但系统为什么只给global_k分配一列的空间?我在以后出现的global_k时,把鼠标停留在global_k上,就显示float global_k[][1]。(我是在C++里编辑的C程序)
2:force[i].u=NULL;为什么不能用NULL将force[i].u置空???force[i].u是浮点型。
...全文
215 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixingzhong 2006-06-13
  • 打赏
  • 举报
回复
分配了你需要的空间了 ...

你可以赋值测试一下的 ...
littlefish1981 2006-06-13
  • 打赏
  • 举报
回复
/* Define NULL pointer value */
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif

这是在stdio.h中定义的
hchf_1 2006-06-13
  • 打赏
  • 举报
回复
#define NULL ((void *) 0)
#define NULL 0


存在着两种定义,虽然都是0值但是还是有差别的吧
x123456x 2006-06-13
  • 打赏
  • 举报
回复
NULL就是数字0?
类似#define NULL 0
是这样吗?
gjianpro 2006-06-13
  • 打赏
  • 举报
回复
你看到的float global_k[][1]并不是系统分配的存储空间
littlefish1981 2006-06-13
  • 打赏
  • 举报
回复
1:系统的确给global_k分配了2*n_node行、2*n_node列的空间,可以对它进行赋值;
2:可以用NULL对浮点数进行赋值。

#include <stdio.h>

#define n_node 3

int main(void)
{
float global_k[2*n_node][2*n_node] = {0};
for (int i=0; i<2*n_node; i++)
{
for (int j=0; j<2*n_node; j++)
{
global_k[i][j] = 9.90495;
printf("%f ",global_k[i][j]);
}
printf("\n");
}

float k = NULL;
printf("k = %f\n",k);

return 0;
}

69,377

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧