C语言数组赋值问题
我的问题
在queue[capacity] = data;之后
queue数组中的所有元素都变成了data的值
运行环境
## macbook pro
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
## docker ubuntu container
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
我的源码
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
#include <semaphore.h>
#include <sys/wait.h>
#include <string.h>
#define times 10
#define length 100
#define name "wayne"
char* queue[length];
int capacity = 0;
int position = 0;
char tmp[sizeof(name)+10];
void push_data( char* data ) {
queue[capacity] = data;
printf("=========================\n\n");
printf("capacity is: %d; text is: %s\n", capacity, data);
for (int i=0; i<=capacity; i++) {
printf("index is: %d; element is: %s\n", i, queue[i]);
}
printf("\n=========================\n");
capacity++;
}
int main() {
for ( int i=0; i<times; i++) {
snprintf( tmp, sizeof(name)+2, "%s%d", name, i );
push_data( tmp );
}
}
运行结果
=========================
capacity is: 0; text is: wayne0
index is: 0; element is: wayne0
=========================
=========================
capacity is: 1; text is: wayne1
index is: 0; element is: wayne1
index is: 1; element is: wayne1
=========================
=========================
capacity is: 2; text is: wayne2
index is: 0; element is: wayne2
index is: 1; element is: wayne2
index is: 2; element is: wayne2
=========================
=========================
capacity is: 3; text is: wayne3
index is: 0; element is: wayne3
index is: 1; element is: wayne3
index is: 2; element is: wayne3
index is: 3; element is: wayne3
=========================
=========================
capacity is: 4; text is: wayne4
index is: 0; element is: wayne4
index is: 1; element is: wayne4
index is: 2; element is: wayne4
index is: 3; element is: wayne4
index is: 4; element is: wayne4
=========================
=========================
capacity is: 5; text is: wayne5
index is: 0; element is: wayne5
index is: 1; element is: wayne5
index is: 2; element is: wayne5
index is: 3; element is: wayne5
index is: 4; element is: wayne5
index is: 5; element is: wayne5
=========================
=========================
capacity is: 6; text is: wayne6
index is: 0; element is: wayne6
index is: 1; element is: wayne6
index is: 2; element is: wayne6
index is: 3; element is: wayne6
index is: 4; element is: wayne6
index is: 5; element is: wayne6
index is: 6; element is: wayne6
=========================
=========================
capacity is: 7; text is: wayne7
index is: 0; element is: wayne7
index is: 1; element is: wayne7
index is: 2; element is: wayne7
index is: 3; element is: wayne7
index is: 4; element is: wayne7
index is: 5; element is: wayne7
index is: 6; element is: wayne7
index is: 7; element is: wayne7
=========================
=========================
capacity is: 8; text is: wayne8
index is: 0; element is: wayne8
index is: 1; element is: wayne8
index is: 2; element is: wayne8
index is: 3; element is: wayne8
index is: 4; element is: wayne8
index is: 5; element is: wayne8
index is: 6; element is: wayne8
index is: 7; element is: wayne8
index is: 8; element is: wayne8
=========================
=========================
capacity is: 9; text is: wayne9
index is: 0; element is: wayne9
index is: 1; element is: wayne9
index is: 2; element is: wayne9
index is: 3; element is: wayne9
index is: 4; element is: wayne9
index is: 5; element is: wayne9
index is: 6; element is: wayne9
index is: 7; element is: wayne9
index is: 8; element is: wayne9
index is: 9; element is: wayne9
=========================
...全文
相关推荐
C语言中浮点类型数组赋值问题新解.pdf
【C语言中浮点类型数组赋值问题新解】在C语言编程中,尤其是在使用较老版本的编译器如TURBO C 2.0时,遇到浮点类型数组赋值的问题是一个常见现象。
C语言之字符数组在if{}里面赋值给char *引发的问题
1 问题 我的buff在if{}里面,然后对buff进行内存操作,最后赋值给char *类型的url,发现url最后没有得到数据 如下代码 #include <stdio.h> #define TRUE 1 void set_value(char *p) { *p = 'c'; *(p + 1) = 'h'; *(p + 2) = 'e'; *...
C语言程序设计(第2版)-2期 常见问题6-2 将字符串赋给字符数组.pdf
在C语言中,字符数组是用于存储字符串的基本数据结构。字符串在C语言中被定义为以空字符'\0'结尾的字符序列。
C语言输入输出问题解析.pdf
同时,文章还指出了在特定环境下对转义字符处理的差异,并对超出字符数组长度的字符串赋值情况进行了说明。这些内容对于C语言的学习和应用都有着重要的参考价值。
关于C语言指针赋值的问题详解
在C语言中,指针是编程中的重要概念,它用于存储内存地址,允许我们直接操作内存。在给定的代码示例中,主要涉及到指针赋值的问题,以及如何处理编译器发出的警告。首先,我们来看一下原始代码中出现的问题:1.


