小编use*_*745的帖子

在Windows 8.1设备管理器上无法识别Galaxy S4

我最近升级到Windows 8.1并尝试连接我的Galaxy S4.我安装了:

  • 三星USB驱动程序
  • Kies的
  • ADT已更新,安装了usb驱动程序
  • 完全更新的窗户8

当我将设备插入电脑时,在PC设备管理器上没有任何事情发生,并且电话说低功率充电请使用推荐的电缆.我正在使用的电缆是手机附带的电缆,当我在Windows XP上安装时,一切都按预期运行.此外,插入设备时,这是adb在查找设备时的输出:

C:\Users\Ken\Desktop\adt-bundle-windows-x86_64-20131030\sdk\platform-tools>adb k
ill-server

C:\Users\Ken\Desktop\adt-bundle-windows-x86_64-20131030\sdk\platform-tools>adb s
tart-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *

C:\Users\Ken\Desktop\adt-bundle-windows-x86_64-20131030\sdk\platform-tools>adb d
evices
List of devices attached


C:\Users\Ken\Desktop\adt-bundle-windows-x86_64-20131030\sdk\platform-tools>
Run Code Online (Sandbox Code Playgroud)

在这一点上,我很确定这是与Windows 8.1和galaxy usb驱动程序的兼容性问题.但是,我一直在研究没有运气的日子.手机的Android版本和型号分别为4.3和SCH-I545.

谢谢您的帮助 :)

windows android

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

C char数组溢出,还好练习?

我正在浏览K&R的书,其中一个练习的答案让我很烦恼.

在解决方案手册中,练习1-22声明了一个char数组:

#define MAXCOL 10
char line[MAXCOL];
Run Code Online (Sandbox Code Playgroud)

所以我的理解是在C数组中从0 ... n-1开始.如果是这种情况,那么上面的声明应该为长度为10的char数组分配内存,从0开始,以9结束.根据我的理解,更多的点线[10]超出范围?示例程序中的函数最终传递一个等于10的整数值pos,并进行以下比较:

int findblnk(int pos) {
while(pos > 0 && line[pos] != ' ')
        --pos;
    if (pos == 0)                   //no blanks in line ?
        return MAXCOL;
    else                        //at least one blank
        return pos+1;               //position after blank
}
Run Code Online (Sandbox Code Playgroud)

如果pos是10而line []的长度只有10,那么数组的边界[pos]是不是超出范围?

可以在C中以这种方式进行比较,还是可能导致分段错误?我确信解决方案手册是对的,这真让我困惑.如有必要,我也可以发布整个程序.谢谢!

感谢快速且非常有帮助的回复,我想这肯定是一个错误.它通过以下分支调用:

else if (++pos >= MAXCOL) {
            pos = findblnk(pos);
            printl(pos);
            pos = newpos(pos);
        }
Run Code Online (Sandbox Code Playgroud)

如上所述,MAXCOL定义为10.所以对于这个分支,findblnk(pos)pos将至少传递10.

您是否认为K&R的解决方案手册值得一试或者是否因为有错误的代码示例而闻名?

c

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

标签 统计

android ×1

c ×1

windows ×1