小编Lil*_*agy的帖子

如何正确访问此结构中的指针?

所以,我有结构的列表和我分配的空间给他们用malloc(),使用*p.现在我想访问每个ptrletter元素并使用它.我该怎么办?这是我的代码.

typedef struct Words {
   char *ptrletter;
   int numbers;
} Word;

int main(){

    FILE *f, *g;    
    char c,d;    
    int *a;    
    int nrofline=0;    
    int elements=0;    
    char string[2];    
    int lines=0;
    f=fopen("m_in.txt","r");

    do{
        d=fgetc(f);
        if (d=='\n'){
            lines++;
        }
    }while (d!=EOF);

    a=(int*)malloc(sizeof(int)*lines);
    rewind(f);

    lines=0;

    do{
        d=fgetc(f);
        if ((d>='A' && d<='Z') || (d>='a' && d<='z')){
            elements++;
        }
        if (d=='\n'){
            a[lines]=elements;
            lines++;
            elements=0;
        }
    }while (d!=EOF);

    Word *p=(Word*)malloc(sizeof(Word)*lines);

    int j=0;
    for (j=0; j<lines; j++){
        strcpy(p[j].ptrletter,"");
        p[j].numbers=0;
    }

    rewind(f);
}
Run Code Online (Sandbox Code Playgroud)

我在 …

c malloc pointers dynamic-memory-allocation

1
推荐指数
1
解决办法
48
查看次数

如何解决错误1060:使用视图-&gt;创建视图重复列名

我试图通过从Sakila数据库(https://dev.mysql.com/doc/sakila/en/)联接一些表(在MySQL中)来创建视图,即我想联接付款,人员和客户并显示客户名称,员工名称,付款ID和金额。我右键单击“视图”,然后单击“创建表”。我认为存在此错误是因为在职员表和客户表中都有名为first_name和last_name的列。我该如何解决这个问题?

我的代码:

CREATE VIEW `payment` AS
SELECT payment.payment_id, customer.first_name, customer.last_name, 
staff.first_name, staff.last_name, payment.amount
FROM payment INNER JOIN customer ON payment.customer_ID = customer.customer_ID
INNER JOIN staff ON payment.staff_ID = staff.staff_ID
Run Code Online (Sandbox Code Playgroud)

错误消息:错误1060:重复的列名称'first_name'

如果像某些回答者建议的那样使用别名进行尝试,则会收到错误ERROR 1347:'sakila.payment'不是VIEW。

完全相同的代码在SQL文件中就像一个超级按钮一样工作,当我运行它时,它会创建所需的表。这两种方法有什么区别?我应该使用哪一个?为什么它不能与“视图”->“创建视图”选项一起使用?

先感谢您。

mysql sql view

0
推荐指数
2
解决办法
6184
查看次数

标签 统计

c ×1

dynamic-memory-allocation ×1

malloc ×1

mysql ×1

pointers ×1

sql ×1

view ×1