数组传递,赋值问题。
程序代码:
#include<stdio.h> #define LEN 8 void SetBit( char bit_array[],unsigned bit_number) { int i; bit_array[bit_number]=1;//运行时,出错,说是内存的问题。是不能这样赋值吗?,还是其它原因? for(i=0;i<LEN;i++) { printf("%d",bit_array[i]); } } int main(void) { char arr[LEN]; int i; int n; printf("Enter 32 bits(0 and 1):\n"); for(i=0;i<LEN;i++) { printf("the %d one:",i+1); scanf("%d",&arr[i]); } printf("whitch bit would you want to set 1?\n"); scanf("%d",&n); SetBit(arr,n); return 0; }
不好意思,昨天写这个问题有点匆忙。
好,我的问题就是,给一个字符型变量符整形值,bit_array[bit_number]=1我感觉就是这句有问题。
应该怎么做。
不管我怎样强制转换,或是用中间变量都有问题。。
[ 本帖最后由 scott_dw 于 2011-9-16 07:21 编辑 ]