小编Fra*_*lea的帖子

C初学者问题:指针算法>完成后清理

我正在慢慢掌握指针.但是我还有一些问题.

使用指针运算时是否可能导致内存泄漏,因为您正在移动指针指向的实际位置?

我的意思是,如果说我向上计数要用char复制字符串char,我是否需要倒数以便C"知道"指针指向的位置?

谢谢弗兰克

c pointers memory-management pointer-arithmetic

5
推荐指数
2
解决办法
1336
查看次数

直接在MySQL语句中生成MD5 idHash

在我的表中,我有一个自动递增的userID.在同一行我有一个idHash.是否可以使用相同的INSERT语句直接从它生成idHash(简单地是MD5总和),这样我就不必SELECT了id,然后再次更新idHash?

问题是:在MySQL生成(自动递增)之前我不知道userID.

谢谢弗兰克

PS:我正在使用PHP.PPS:这个问题是关于单一插入的.我知道我可以使用PHP或其他语言手动选择数据然后更新它.

mysql select md5 insert

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

CSS:列表样式图像的定位

我有一个清单 list-style-image:url("../images/prices/tick.png");

如何正确定位图像以使图像和文本位于同一y坐标上?是不是有办法在urlwith 之后定义它url("link") 20px 30px

我似乎无法在线查找有关如何再次完成的信息.

css position image

5
推荐指数
1
解决办法
3万
查看次数

PHP设置MySQL套接字位置

我之前遇到的问题是我的C应用程序在/tmp/mysql.sock中查找套接字,但我的套接字位置已设置为/var/run/mysqld.sock.我现在更改my.cnf中的设置以始终将套接字放入/ tmp.

现在,当我尝试使用nginx和php5-fpm运行我的Web应用程序时,它找不到套接字,因为它仍然在/var/run/mysqld.sock中查找.起初我创建了一个链接但后来注意到,每当我重新启动机器时,此链接都会被删除.

我搜索了我的php.ini并将所有三个(pdo_mysql.default_socket,mysql.default_socket,mysqli.default_socket)可用套接字选项设置为/tmp/mysql.sock.我在文件夹cgi,cli和fpm中这样做了.但是,它仍然无效.我还需要添加其他选项吗?或者我应该重新考虑我的做法?

继承人我的php.ini:

   [PHP]

    engine = On
    short_open_tag = On
    asp_tags = Off
    precision = 14
    y2k_compliance = On
    output_buffering = 4096
    zlib.output_compression = Off
    implicit_flush = Off
    unserialize_callback_func =
    serialize_precision = 100
    allow_call_time_pass_reference = Off
    s    afe_mode = Off
    safe_mode_gid = Off
    safe_mode_include_dir =
    safe_mode_exec_dir =
    safe_mode_allowed_env_vars = PHP_
    safe_mode_protected_env_vars = LD_LIBRARY_PATH
    disable_functions =
    disable_classes =
    expose_php = On
    max_execution_time = 30
    max_input_time = 60
    memory_limit = 128M
    error_reporting = E_ALL & ~E_DEPRECATED
    display_errors = Off
    display_startup_errors …
Run Code Online (Sandbox Code Playgroud)

php mysql sockets

5
推荐指数
1
解决办法
2万
查看次数

将Web服务器绑定到端口80而不是root用户

我在C中编写了自己的Web服务器.如何将其绑定到端口80而不是root,这样安全性不会受到影响(缓冲区溢出等)?

我应该简单地转发来自在端口80上运行的另一个"稳定"服务器的任何流量吗?

c linux

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

整体推广

什么时候有符号整数不能代表整数提升的原始类型的所有值?

来自K&R,C Programming Language,2nd Ed.页.174

A.6.1整体推广

无论是否有符号,都可以使用字符,短整数或整数位字段,或者枚举类型的对象,可以在任何可以使用整数的表达式中使用.如果int可以表示原始类型的所有值,则该值将转换为int; 否则该值将转换为unsigned int.这个过程称为整体推广.

此代码显示了我的系统类型的限制:

#include <stdio.h>
#include <limits.h>

int main(void)
{

    printf("CHAR_MAX: %i\n", CHAR_MAX);     
    printf("UCHAR_MAX: %i\n", UCHAR_MAX);

    printf("SHORT_MAX: %i\n", SHRT_MAX);        
    printf("USHORT_MAX: %i\n", USHRT_MAX);

    printf("INT_MAX: %i\n", INT_MAX);       
    printf("UINT_MAX: %u\n", UINT_MAX);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

结果是:

CHAR_MAX: 127
UCHAR_MAX: 255
SHORT_MAX: 32767
USHORT_MAX: 65535
INT_MAX: 2147483647
UINT_MAX: 4294967295
Run Code Online (Sandbox Code Playgroud)

signed int类型比任何其他类型都大,所以什么时候会回到UINT_MAX?

c integer-promotion

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

C中的指针,数组,字符串和Malloc

我正在学习C中的字符串,指针和数组.我试着编写一个程序,其中一个数组包含三个指向字符串地址的指针.这一切似乎都有效,但程序表现得很奇怪.

这是代码:

char** getUserDetails()
    {

    char* host = "localhost";

    char* username = "root";

    char* password = "mypassword";

    // create array for holding pointers to strings

    char *userDetailsHolder[3];

    userDetailsHolder[0] = malloc(sizeof(char)*strlen(host));   
    strcpy(userDetailsHolder[0], host);

    userDetailsHolder[1] = malloc(sizeof(char)*strlen(username));
    strcpy(userDetailsHolder[1], username);

        userDetailsHolder[2] = malloc(sizeof(char)*strlen(password));
        strcpy(userDetailsHolder[2], password);

        return userDetailsHolder;
    }

    int main()
    {

    char** userDetails = getUserDetails();

    printf("Host: %s\nUsername: %s\nPassword: %s\n", userDetails[0], userDetails[1], userDetails[2]);

    printf("Host: %s\nUsername: %s\nPassword: %s\n", userDetails[0], userDetails[1], userDetails[2]);

            return 0;
    }
Run Code Online (Sandbox Code Playgroud)

输出:输出表明出现了严重错误

Host: localhost
Username: root
Password: mypassword
Host: root
Username: localhost …
Run Code Online (Sandbox Code Playgroud)

c arrays string malloc pointers

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

GDB:为符号的更改分配断点

我正在调试具有分段错误的C应用程序.我已经确定了导致问​​题的变量.但是,我还不知道,当分配变量时会导致分段错误.

如果将新值分配给现有变量,是否有办法在GDB中设置断点?

c debugging gdb

4
推荐指数
2
解决办法
304
查看次数

使用money_format()时如何输出缩写货币符号而不是货币名称?

money_format函数中是否有一个标志,允许您用缩写版本($,€)替换长货币(例如USD,EUR)?

php money-format

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

switch语句中的C字符串

可能重复:
在C中打开字符串的最佳方法

字符串(c字符数组)和switch语句一起使用的一般方法是什么?我正在查询数据库中存储为的货币

"USD"
"EUR"
"GBP"
Run Code Online (Sandbox Code Playgroud)

等等。来自PHP背景,我只需执行以下操作:

switch ($string) {
  case "USD":
   return "$";
   break;
  case "EUR":
   return "€";
   break;   
  case "GBP":
   return "£";
   break;
  default:
   return "$";
}
Run Code Online (Sandbox Code Playgroud)

在C中,case值必须是整数。我将如何在C中实现类似的功能?我最终会在一个很大的if / else块中写很多strcmp吗?另请注意,我不能简单地比较货币的第一个字符,因为某些字符(尽管在本示例中不是)以相同的字符开头。

c switch-statement

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