日期:2014-05-16  浏览次数:20674 次

求助:在定义变长结构体数组时运行出错

u = mysql_num_fields(res)*mysql_num_rows(res);
struct scsr {
               int ncsr;
               char uid[50];
               char mid[u][50];
               };

struct scsr csr[u];


编译通过,运行的时候在 struct scsr csr; 这步报错  段错误。请问哪里出问题了?
------解决方案--------------------
编译应该都编译不过.还是改成知道长度吧,或者现malloc.
------解决方案--------------------
有可能是的rows获取到的是0,导致你的coredump,不过最好是能够gdb跟踪进去看看。
还有一个这样的数值定义有一定的风险,最好使用1楼所说的动态获取。