C语言 字符串数组处理,50B,急求

1.我想写一个程序:(C)
给定一个字符串"test"
生成一个字符串数组,元素分别为"test1","test2""test3""test4".(用for循环,元素数量可变)
2.为什么我程序在把命令行传入的参数赋值给一个字符串变量后,其余的字符串变量都变成了这个参数值?比如:
tx[0]="KU";
printf("t1===%s\n",tx[0]);
name[0]=argv[1];
这样的话,tx[0]就是KU.

tx[0]="KU";
name[0]=argv[1];
printf("t1===%s\n",tx[0]);
这样,tx[0]就是我传入的参数值argv[1]???
50悬赏,急求!谢

你说你想要这个么?字符串数组

#include <string>
#include <iostream>
using namespace std;
int main()
{
 char* pTest = "test";
    int num;
    cout<<"请输入num:";
    cin>>num;
    char** pStr = new char*[num];
    for (int i = 0; i < num; i++)
    {
        char pTemp[10] = {0};
        pStr[i] = new char[10];
        memset(pStr[i], '\0', 10);
        memcpy(pStr[i], pTest, strlen(pTest));
        itoa(i + 1, pTemp, 10);
        strcat(pStr[i], pTemp);
    }

    for (int i = 0; i < num; i++)
    {
        printf("%s ", pStr[i]);
    }

    printf("\n");
    return 0;
    }

把你的代码贴全了,不知道你的name数组和你的tx数组有什么关系没?
如果name和tx指向的是同一个地址的话,你打印出来的就可能是你后赋值的那个值。

源码贴出来,不然看不出来,好像不难

tx是一个指向字符串数组的地址的指针(也就是二级指针)对吧?

 tx[0]="KU";
printf("t1===%s\n",tx[0]);
name[0]=argv[1];
 tx[0]="KU";
name[0]=argv[1];
printf("t1===%s\n",tx[0]);

这两段程序的唯一区别是第二和第三个语句的顺序不同。如果先将命令行参数传给name[0],就会输出命令行的结果。
但是,确切地说,tx和name有啥子关系嘞?

tx[0]与name[0]指向的地址是否相同?如果相同,那么前面一段的代码作用就是,将字符串uk赋给tx[0],然后输出,此时tx[0]的内容为"uk"。然后name[0]=argv[1]就是将tx[0]的值再次改变。最终窗口输出的是"uk",但tx[0]的值是argv[1]的值。而后面一段代码的作用是,先把"uk"赋给tx[0],然后通过name[0]=argv[1]再次改变tx[0]的值,然后输出tx[0]。最终窗口输出的是argv[1]的值,tx[0]得值也是等于argv[1]的值。
总的来说,两段代码的结果都是把argv[1]的值赋给tx[0]。只是窗口输出不一样而已。

你的tx跟name指向的是同一地址吧,你源码没看到,不过你肯定是做了操作使得这样的吧

能不能给出个我问的第一个问题的源码,肯定不难,但是字符串这部分我老是碰壁!